/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.model;

import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Alberto
 */
@Entity
@Table(name = "voluntariado")
@NamedQueries({
    @NamedQuery(name = "Voluntariado.findAll", query = "SELECT v FROM Voluntariado v"),
    @NamedQuery(name = "Voluntariado.findByCedula", query = "SELECT v FROM Voluntariado v WHERE v.cedula = :cedula"),
    @NamedQuery(name = "Voluntariado.findByNombre", query = "SELECT v FROM Voluntariado v WHERE v.nombre = :nombre"),
    @NamedQuery(name = "Voluntariado.findByApellido", query = "SELECT v FROM Voluntariado v WHERE v.apellido = :apellido"),
    @NamedQuery(name = "Voluntariado.findByExpediente", query = "SELECT v FROM Voluntariado v WHERE v.expediente = :expediente"),
    @NamedQuery(name = "Voluntariado.findByFechanac", query = "SELECT v FROM Voluntariado v WHERE v.fechanac = :fechanac"),
    @NamedQuery(name = "Voluntariado.findByFacultad", query = "SELECT v FROM Voluntariado v WHERE v.facultad = :facultad"),
    @NamedQuery(name = "Voluntariado.findByEscuela", query = "SELECT v FROM Voluntariado v WHERE v.escuela = :escuela"),
    @NamedQuery(name = "Voluntariado.findByEspecialidad", query = "SELECT v FROM Voluntariado v WHERE v.especialidad = :especialidad"),
    @NamedQuery(name = "Voluntariado.findBySemestre", query = "SELECT v FROM Voluntariado v WHERE v.semestre = :semestre"),
    @NamedQuery(name = "Voluntariado.findByAnio", query = "SELECT v FROM Voluntariado v WHERE v.anio = :anio"),
    @NamedQuery(name = "Voluntariado.findByTipoestudiante", query = "SELECT v FROM Voluntariado v WHERE v.tipoestudiante = :tipoestudiante"),
    @NamedQuery(name = "Voluntariado.findByEmail", query = "SELECT v FROM Voluntariado v WHERE v.email = :email"),
    @NamedQuery(name = "Voluntariado.findByTelefono", query = "SELECT v FROM Voluntariado v WHERE v.telefono = :telefono"),
    @NamedQuery(name = "Voluntariado.findByInteres", query = "SELECT v FROM Voluntariado v WHERE v.interes = :interes"),
    @NamedQuery(name = "Voluntariado.findByArea", query = "SELECT v FROM Voluntariado v WHERE v.area = :area"),
    @NamedQuery(name = "Voluntariado.findBySeleccion", query = "SELECT v FROM Voluntariado v WHERE v.seleccion = :seleccion")})
public class Voluntariado implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "cedula")
    private Integer cedula;
    @Basic(optional = false)
    @Column(name = "nombre")
    private String nombre;
    @Basic(optional = false)
    @Column(name = "apellido")
    private String apellido;
    @Column(name = "expediente")
    private Integer expediente;
    @Basic(optional = false)
    @Column(name = "fechanac")
    @Temporal(TemporalType.DATE)
    private Date fechanac;
    @Column(name = "facultad")
    private String facultad;
    @Column(name = "escuela")
    private String escuela;
    @Column(name = "especialidad")
    private String especialidad;
    @Column(name = "semestre")
    private String semestre;
    @Column(name = "anio")
    private String anio;
    @Column(name = "tipoestudiante")
    private String tipoestudiante;
    @Column(name = "email")
    private String email;
    @Column(name = "telefono")
    private String telefono;
    @Column(name = "interes")
    private Boolean interes;
    @Lob
    @Column(name = "Foto")
    private byte[] foto;
    @Column(name = "area")
    private String area;
    @Column(name = "seleccion")
    private Boolean seleccion;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "voluntariado")
    private Collection<ServicioHasVoluntariado> servicioHasVoluntariadoCollection;

    public Voluntariado() {
    }

    public Voluntariado(Integer cedula) {
        this.cedula = cedula;
    }

    public Voluntariado(Integer cedula, String nombre, String apellido, Date fechanac) {
        this.cedula = cedula;
        this.nombre = nombre;
        this.apellido = apellido;
        this.fechanac = fechanac;
    }

    public Integer getCedula() {
        return cedula;
    }

    public void setCedula(Integer cedula) {
        this.cedula = cedula;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public Integer getExpediente() {
        return expediente;
    }

    public void setExpediente(Integer expediente) {
        this.expediente = expediente;
    }

    public Date getFechanac() {
        return fechanac;
    }

    public void setFechanac(Date fechanac) {
        this.fechanac = fechanac;
    }

    public String getFacultad() {
        return facultad;
    }

    public void setFacultad(String facultad) {
        this.facultad = facultad;
    }

    public String getEscuela() {
        return escuela;
    }

    public void setEscuela(String escuela) {
        this.escuela = escuela;
    }

    public String getEspecialidad() {
        return especialidad;
    }

    public void setEspecialidad(String especialidad) {
        this.especialidad = especialidad;
    }

    public String getSemestre() {
        return semestre;
    }

    public void setSemestre(String semestre) {
        this.semestre = semestre;
    }

    public String getAnio() {
        return anio;
    }

    public void setAnio(String anio) {
        this.anio = anio;
    }

    public String getTipoestudiante() {
        return tipoestudiante;
    }

    public void setTipoestudiante(String tipoestudiante) {
        this.tipoestudiante = tipoestudiante;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public Boolean getInteres() {
        return interes;
    }

    public void setInteres(Boolean interes) {
        this.interes = interes;
    }

    public byte[] getFoto() {
        return foto;
    }

    public void setFoto(byte[] foto) {
        this.foto = foto;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public Boolean getSeleccion() {
        return seleccion;
    }

    public void setSeleccion(Boolean seleccion) {
        this.seleccion = seleccion;
    }

    public Collection<ServicioHasVoluntariado> getServicioHasVoluntariadoCollection() {
        return servicioHasVoluntariadoCollection;
    }

    public void setServicioHasVoluntariadoCollection(Collection<ServicioHasVoluntariado> servicioHasVoluntariadoCollection) {
        this.servicioHasVoluntariadoCollection = servicioHasVoluntariadoCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (cedula != null ? cedula.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Voluntariado)) {
            return false;
        }
        Voluntariado other = (Voluntariado) object;
        if ((this.cedula == null && other.cedula != null) || (this.cedula != null && !this.cedula.equals(other.cedula))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.model.Voluntariado[cedula=" + cedula + "]";
    }

}
